package servlet;

import util.GsonUtil;
import dao.StaffsDao;
import dao.impl.StaffsDaoImpl4jdbc;
import entity.Staffs;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

/**
 *  查看所有员工 - Servlet 程序 - 服务器端程序
 *  第一 : 定义一个类,继承HttpServlet
 *  第二 : 重写 doXXX方法 ，实现处理客户端浏览器发起发的XXX请求
 *  第三 : 在 doXXX 方法中, 编写具体代码,实现具体的业务逻辑（功能）
 *  第四 : 配置请求 URL ,爆露服务器
 * @Author lzp
 * @Date 2024-03-11
 */
@WebServlet("/ListAll")
public class ListAllStaffServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 第三：编写具体代码，实现具体的业务逻辑（功能） - 把对象(list)序列化为 JSON 字符串返回
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("application/json;charset=utf-8");

        // 实例化 DAO 对象，查询数据库数据
        StaffsDao staffDao = new StaffsDaoImpl4jdbc();
        int currentPage = 1;
        int pageSize = 5;
        int limit = (currentPage - 1) * pageSize;
        List<Staffs> list = staffDao.selectAdPage(limit, pageSize);

        // 实例化 Gson 对象，把对象序列化为 JSON 字符串
        // Gson gson = new Gson();
        // String json = gson.toJson(list);
        String json = GsonUtil.toJson(list);
        System.out.println(json);

        // 实例化 PrintWriter 对象，把数据响应到客户端浏览器中
        PrintWriter out = resp.getWriter();
        out.print(json);
        out.flush();
        out.close();
    }
}
